#ifndef __SW_3D_MATERIAL_H__
#define __SW_3D_MATERIAL_H__

#include <unordered_map>
#include "framework/sweety.h"

namespace SW
{
	class MainProgramObj;
	class Material
	{
	public:

		enum class SamplerType
		{
			DIFFUSE = 0,
			SPECULAR
		};


		Material();
		virtual ~Material();

		void	Sampler(MainProgramObj* shader, const char* diffuse_path, const char* specular_path, float shininess);

		void	Set(MainProgramObj* shader, const char* name, SamplerType type);

		void	Bind(SamplerType type);

		void	SetShininess(MainProgramObj* shader, const char* name, float shininess);

	private:		
		std::unordered_map<SamplerType, int> m_SamplerMap;
		float			m_Shininess{ 32.0f };
	};
}


#endif